#ifndef _ENTITY_MANAGER_H_
#define _ENTITY_MANAGER_H_

#include "Engine.h"
#include "ComponentManager.h"

class EntityManager
{
    EntityManager();
    static EntityManager* _instance;
public
    ~EntityManager();
    static EntityManager* getInstance();

    //void addEntity(int type = 0);
    void addEntity(std::vector<Component*> components);

    void deleteEntity(int entity);
    void setType(int type);


    bool hasComponent(int entity, int compType);
    int getEntityType();

private:
    std::vector<int> _entityList;
    std::vector<int> _avaliableIDs;


    ComponentManager* _componentMgr;

    int _type;
    int _currentID;

};

#endif // _ENTITY_MANAGER_H_
